package com.firefly.admin.config.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.firefly.admin.common.vo.Result;
import com.firefly.admin.config.entity.FySystemDictionary;
import com.firefly.admin.config.vo.SystemDictionaryQueryVo;
import com.firefly.admin.config.vo.SystemDictionaryStatusUpdateVo;

import java.util.List;

public interface FySystemDictionaryService {
    /**
     * 获取所有字典
     *
     * @return 字典列表
     */
    List<FySystemDictionary> getAllDictionary();

    /**
     * 分页查询系统字典接口
     *
     * @param systemDictionaryQueryVo 分页查询参数
     * @return 分页列表
     */
    Result<Page<FySystemDictionary>> getSystemDictionaryList(SystemDictionaryQueryVo systemDictionaryQueryVo);

    /**
     * 获取系统字典信息接口
     *
     * @param dictionaryId 字典ID
     * @return 字典信息
     */
    Result<FySystemDictionary> getSystemDictionary(Long dictionaryId);

    /**
     * 系统字典信息新增接口
     *
     * @param fySystemDictionary 字典信息
     * @return 操作结果
     */
    Result<FySystemDictionary> add(FySystemDictionary fySystemDictionary);

    /**
     * 系统字典信息编辑接口
     *
     * @param fySystemDictionary 字典信息
     * @return 操作结果
     */
    Result<FySystemDictionary> update(FySystemDictionary fySystemDictionary);

    /**
     * 系统字典状态编辑接口
     *
     * @param systemDictionaryStatusUpdateVo 状态信息
     * @return 操作结果
     */
    Result<FySystemDictionary> updateStatus(SystemDictionaryStatusUpdateVo systemDictionaryStatusUpdateVo);

    /**
     * 系统字典信息删除接口
     *
     * @param dictionaryId 字典ID
     * @return 操作结果
     */
    Result<String> delete(Long dictionaryId);

    /**
     * 系统字典编码校验接口
     *
     * @param dictionaryCode 字典编码
     * @param dictionaryId   字典ID
     * @return 校验结果
     */
    Result<String> dictionaryCodeCheck(String dictionaryCode, Long dictionaryId);

    /**
     * 查询所有正常状态的字典
     *
     * @return 正常状态字典列表
     */
    List<FySystemDictionary> findAllNormal();
}
